/**
 * Assignment 3, ETS course LOG430 - Architecture logicielle. The purpose of
 * this assignment is to introduce the implicit invocation architectural
 * style.<br><br>
 * 
 * The application is a contrived student registration system. It is a menu
 * driven system that allows the following options:
 * 
 * <blockquote>
 * 1) List Students<br>
 * 2) List Courses<br>
 * 3) List Courses a Student has Registered for<br>
 * 4) List Students Registered for a Course<br>
 * 5) Register a Student for a Course<br>
 * X) Exit<br>
 * </blockquote>
 * 
 * Functionally, the system is identical to the previous lab.
 * 
 * Dynamically, the main program initializes the primary objects
 * and dispatches commands at the user's request. When the program is started,
 * the student objects are initialized from a file (<tt>etudiantsLOG.txt</tt>).
 * The format of this file is listed in the
 * {@link ca.etsmtl.log430.lab3.StudentReader StudentReader} class header.
 * The course objects are initialized from another file (<tt>coursLOG.txt</tt>).
 * The format of this file is listed in the
 * {@link ca.etsmtl.log430.lab3.CourseReader CourseReader} class header.<br><br>
 * 
 * <b>Running the program:</b><br><br>
 * 
 * <blockquote>
 * <tt>java SystemInitialize</tt>
 * </blockquote>
 *
 * @author A.J. Lattanze - CMU - 1999
 * @author Roger Champagne - ETS - 2002-2011
 * @version 2011-Feb-24
 */